package cn.heyige.backend.service;

import com.baomidou.mybatisplus.extension.service.IService;
import cn.heyige.backend.entity.UserQuotaDO;

/**
 * 用户配额服务接口 - 精简版
 *
 * 专注于核心用户配额管理功能，提高系统性能和可维护性
 *
 * @author CodeBuddy
 */
public interface UserQuotaService extends IService<UserQuotaDO> {
    
    /**
     * 检查用户配额是否足够
     *
     * @param userId 用户ID
     * @param quotaType 配额类型
     * @param requiredAmount 需要的配额数量
     * @return 是否足够
     */
    boolean checkQuotaAvailable(Long userId, String quotaType, Integer requiredAmount);
    
    /**
     * 扣除用户配额
     *
     * @param userId 用户ID
     * @param quotaType 配额类型
     * @param amount 扣除的配额数量
     * @return 是否成功
     */
    boolean deductQuota(Long userId, String quotaType, Integer amount);
    
    /**
     * 增加用户配额
     *
     * @param userId 用户ID
     * @param quotaType 配额类型
     * @param amount 增加的配额数量
     * @return 是否成功
     */
    boolean addQuota(Long userId, String quotaType, Integer amount);
    
    /**
     * 获取用户配额信息
     *
     * @param userId 用户ID
     * @param quotaType 配额类型
     * @return 配额数量
     */
    Integer getQuotaAmount(Long userId, String quotaType);
}